반구조적 소프트웨어 명세서 (s4)

  • 2025-08-18 (modified: 2025-08-21)
  • 별칭: s4, 반구조적 소프트웨어 명세서

상태없는 AI-인간 인터랙션을 구현하기 위한 프로세스이자 도구이자 명세서 형식. 에이전트 기반 코딩 실험 3의 결과물.

github.com/akngs/s4

설명

s4는 특정 형식을 따르는 yaml 명세서(s4.yaml)와 소스 코드를 정적 분석하여 다음에 해야할 일이 무엇인지를 출력하는 전통적인 CLI 프로그램이다.

s4 status를 실행하면

  1. 명세서에 내적 일관성이 있는지(모든 비즈니스 목표에 한 개 이상의 구체적 기능이 존재하는지, 기능 사이의 의존 관계에 순환이 없는지, 모든 기능에 한 개 이상의 인수 기준이 존재하는지 등)
  2. 명세서와 코드 사이가 일치하는지(명세서 상 인수 기준에 대응되는 인수 테스트가 코드에 존재하는지)
  3. 명세서에 등록된 모든 검사(인수 테스트, 단위 테스트, 커버리지, 타입 검사 등)를 통과하는지를

검사한 후 문제가 발견되면 가장 먼저 해결해야할 문제가 무엇인지, 해당 문제를 해결하기 위해 필요한 뭘 하면 되는지 등을 알려준다. s4의 출력은 문제 해결에 필요한 맥락을 충분히 담고 있어서 상태없는 AI-인간 인터랙션을 가능하게 해준다.

부연

이 방식은 AI 에이전트가 도구의 호출 여부를 제어하고, 호출된 도구는 AI 에이전트가 잘 하지 못하는 종류의 작업을 수행한 뒤에 도구가 잘 하지 못하는 종류의 작업을 다시 AI 에이전트에게 구체적으로 지시하여 에이전트의 작업을 촉발한다는 점에서 재귀적 신경기호 제어 역전 패턴의 일종이라고 볼 수 있다.